#!/bin/bash

# 系统监控脚本

echo "🔍 石楼油库设备管理系统 - 系统监控"
echo "=================================="

# 检查服务器状态
echo "📡 服务器状态:"
if pgrep -f "next dev" > /dev/null; then
    echo "  ✅ Next.js开发服务器正在运行"
    echo "  🆔 进程ID: $(pgrep -f 'next dev')"
else
    echo "  ❌ Next.js开发服务器未运行"
fi

# 检查端口占用
echo ""
echo "🔌 端口状态:"
for port in 3000 3001; do
    if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null 2>&1; then
        pid=$(lsof -ti:$port)
        echo "  ✅ 端口 $port 被占用 (PID: $pid)"
    else
        echo "  ❌ 端口 $port 空闲"
    fi
done

# 系统资源使用
echo ""
echo "💾 系统资源:"
echo "  内存使用: $(free -h | awk 'NR==2{printf "%.1f%%", $3*100/$2 }')"
echo "  磁盘使用: $(df -h / | awk 'NR==2{print $5}')"
echo "  负载平均: $(uptime | awk -F'load average:' '{ print $2 }')"

# 数据库状态
echo ""
echo "🗄️ 数据库状态:"
if [ -f "data/delivery-management.db" ]; then
    echo "  ✅ 主数据库存在 ($(du -h data/delivery-management.db | cut -f1))"
else
    echo "  ❌ 主数据库不存在"
fi

# 检查WAL文件
if [ -f "data/delivery-management.db-wal" ]; then
    wal_size=$(du -h data/delivery-management.db-wal | cut -f1)
    echo "  📄 WAL文件: $wal_size"
    if [ $(stat -c%s data/delivery-management.db-wal) -gt 1048576 ]; then
        echo "  ⚠️  WAL文件较大，建议执行CHECKPOINT"
    fi
fi

# 检查日志文件
echo ""
echo "📋 日志状态:"
if [ -f "server.log" ]; then
    log_size=$(du -h server.log | cut -f1)
    echo "  📄 服务器日志: $log_size"
    
    # 检查最近的错误
    if grep -q "Error\|Failed\|Exception" server.log 2>/dev/null; then
        echo "  ⚠️  发现错误日志，最近5条错误:"
        grep -i "error\|failed\|exception" server.log | tail -5 | sed 's/^/    /'
    else
        echo "  ✅ 未发现明显错误"
    fi
else
    echo "  ❌ 服务器日志文件不存在"
fi

# Node.js进程信息
echo ""
echo "🟢 Node.js进程:"
ps aux | grep -E "(node|next)" | grep -v grep | while read line; do
    echo "  $line"
done

echo ""
echo "🔧 快速操作:"
echo "  重启服务: ./start-dev.sh"
echo "  查看日志: tail -f server.log"
echo "  清理缓存: rm -rf .next/cache"
echo "  停止服务: pkill -f 'next dev'"